package cn.tristenstudy.blog.service;

import cn.tristenstudy.blog.pojo.Blog;
import cn.tristenstudy.blog.pojo.Tag;
import cn.tristenstudy.blog.pojo.dto.TagDTO;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

import java.util.List;

/**
 * 标签Service
 *
 * @author xichen1.li
 * @date 2020-12-25 16:42
 */
public interface TagService {
    /**
     * 新增标签
     *
     * @param tag 标签
     * @return 结果
     */
    Boolean saveTag(Tag tag);

    /**
     * 通过id查询标签
     *
     * @param id 标签id
     * @return 结果
     */
    Tag getTag(Long id);

    /**
     * 分页查询标签
     *
     * @param current 分类查询条件
     * @return 结果
     */
    Page<Tag> listTag(Long current);

    /**
     * 查询所有标签
     *
     * @return 结果
     */
    List<Tag> list();

    /**
     * (首页)查询标签
     *
     * @param size 数量
     * @return 结果
     */
    List<TagDTO> listTagTop(Integer size);

    /**
     * 更新标签
     *
     * @param tag 标签
     * @return 结果
     */
    Boolean updateTag(Tag tag);

    /**
     * 删除标签
     *
     * @param id 标签id
     * @return 结果
     */
    Boolean deleteTag(Long id);

    /**
     * 判断当前标签是否存在
     *
     * @param tag 标签
     * @return true 不存在
     */
    boolean isNotExist(Tag tag);

    /**
     * 根据标签id，分页查询博客列表
     *
     * @param id      标签id
     * @param current 页码
     * @return 博客列表
     */
    Page<Blog> listBlogByTagId(Long id, Integer current);
}
